package com.ccubee.data.transfer.properties.transfer;

import com.ccubee.data.transfer.types.ColumnType;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * @Author ycf
 * @Date 2022/11/13 17:55
 * @Version 1.0
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class DbProperties extends TransferConfig {
    /**
     * 表配置
     */
    private List<TableConfig> tables;
    /**
     * 目标数据源名称
     */
    private String dsTarget;
    /**
     * 源数据 数据源名称
     */
    private String dsSource;

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class TableConfig extends TransferConfig {
        /**
         * 字段列表
         */
        private List<ColumnConfig> columns;
        /**
         * 新增是否开启 存在则修改，不存在则新增（默认不开启）
         */
        private Boolean insertOrUpdate = Boolean.TRUE;
    }

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class ColumnConfig extends TransferConfig {
        /**
         * 字段类型
         */
        private ColumnType columType = ColumnType.NONE;
        /**
         * 获取数据的字段
         */
        private String columValue;
    }
}
